﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using OfertanteService.Persistencia;
using System.ServiceModel.Web;
using System.Net;
using System.Messaging;
using ContratanteService.Dominio;

namespace OfertanteService
{
    public class Ofertantes : IOfertantes
    {
        private OfertanteDAO dao = new OfertanteDAO();

        public List<Ofertante> BuscarOfertante(string razon_social,string departamento,string provincia,string distrito,string categoria,string producto)
        {
            List<Ofertante> resultados = new List<Ofertante>();
            resultados = dao.BuscarOfertantes(razon_social, departamento, provincia, distrito, categoria, producto);

            if (resultados.Count == 0)

                throw new WebFaultException<string>(
                    "No se encontro resultados. Modifique los filtros.", HttpStatusCode.InternalServerError);
            
            return resultados;
        }

        public List<Ofertante> ListarOfertantes(string tipo)
        {
            return dao.ListarTodos(int.Parse(tipo));
        }

        public Ofertante ObtenerOfertante(string id)
        {
            return dao.Obtener(int.Parse(id));
        }

        public Ofertante ModificarOfertante(Ofertante ofertanteAModificar)
        {
            return dao.Modificar(ofertanteAModificar);
        }

        public Ofertante CrearOfertante(Ofertante ofertanteACrear)
        {
            return dao.Crear(ofertanteACrear);
        }

        public Producto crearProducto(Producto productoACrear)
        {
            return dao.CrearProducto(productoACrear);
        }
        
    }
}
